home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / tool / mercury / start.c < prev    next >
Text File  |  1995-01-29  |  2KB  |  92 lines

  1. /*
  2.  
  3. MercuryInstaller スタートアップルーチン
  4.  
  5. */
  6.  
  7. #include<stdio.h>
  8. #include<stdlib.h>
  9. #include<string.h>
  10. #include<jstring.h>
  11.  
  12. #include"mercury.h"
  13. /*-----------------------------オプションの解析------------------------------*/
  14. static    void    option(char *s)
  15. {
  16.     switch    (s[1])
  17.     {
  18.     case 'D':
  19.     case 'd':
  20.         Drive = s[2];
  21.         break;
  22.     case 'C':
  23.     case 'c':
  24.         Flag_noignore = 1;
  25.         break;
  26.     case 'E':
  27.     case 'e':
  28.         Flag_isfmesc = (s[2]=='F' || s[2]=='f');
  29.         break;
  30.     case 'h':
  31.     case 'H':
  32.     case '?':
  33.         printf(    "書式:MERCURY [オプション] [インデックスファイル名]\n"
  34.             "\n"
  35.             "オプション : \n"
  36.             "     -D[ドライブ名]   データドライブの指定\n"
  37.             "     -C               インデックスファイルの検査を厳密に行う\n"
  38.             "     -EF              FMシリーズ用エスケープシーケンスを使用\n");
  39.         exit(0);
  40.     default:
  41.         printf("不正なオプションです : %s\n",s);
  42.         exit(1);
  43.     }
  44. }
  45. /*-----------------------------スタートアップ--------------------------------*/
  46. extern    int    main(int argc,char **argv)
  47. {
  48.     char    *p = argv[0];
  49.     char    buf[128];
  50.  
  51.     diet_init();
  52.  
  53.     printf(    "MercuryInstaller Version " VERSION " for MS-DOS\n"
  54.         "Copyright (c) 1994-95 Delmonta\n\n");
  55.     
  56.     fclose(stdaux);
  57.     fclose(stdprn);
  58.     freopen("/dev/con","r",stdin);
  59.     freopen("/dev/con","w",stdout);
  60.  
  61.     while    (argv++,--argc)
  62.     {
  63.         if    (*argv[0]=='-')
  64.             option(argv[0]);
  65.         else
  66.         {
  67.             char    c = Drive;
  68.             readidxfile(argv[0]);
  69.             if    (c!='\0')
  70.                 Drive = c;
  71.             goto end;
  72.         }
  73.     }
  74.  
  75.     /* コマンドラインでファイル名が指定されなかった場合 */
  76.     if    (p!=NULL)
  77.     {
  78.         strcpy(buf,p);
  79.         strcpy(jstrrchr(buf,'\\')+1,DEFAULT_IDXFILENAME);
  80.         p = buf;
  81.     }
  82.     else
  83.         p = DEFAULT_IDXFILENAME;
  84.  
  85.     readidxfile(p);
  86.  
  87. end:
  88.  
  89.     menu();
  90. }
  91. /*-----------------------------End of start.c--------------------------------*/
  92.